自從ChatGPT走紅,網路上出現各種Prompt的模板分享。你可能曾經看過這樣的標題:「100+個必收藏的Prompt模板」、「終極詠唱師:Prompt模板全攻略」等等,手指頭像神經反射般立馬按讚、加到我的最愛,然後...就沒有然後了XD 它就永遠塵封在資料夾裡~
其實我對這種「模板熱」實在一頭霧水,不知道有沒有人跟我有一樣的困惑?
因為在我的認知裡,Prompt其實就是問問題,那...每個人的情況、要解決的事情都不同,你要輸入的問題一定各不相同,這種東西怎麼可能「照抄」別人寫好的模板呢???
因此,我本來是不算在這系列文過多著墨Prompt,直到我在鐵人賽期間看到簡光正大大分享的《The Way of Prompting》後深受啟發,也看見了在日常工作實現自動化的可能。
我重新審視了自己的使用狀況,並結合自己的使用經驗與心得,挑出幾個大家在最常遇到的問題、迷思,還有能立即在實戰中應用的技巧,迫不及待想跟大家分享。
那~我們就開始吧~
.
.
.
乍看之下,會疑惑「這是不是個專有名詞?」事實上,只要是我們鍵入在自然語言模型(ex:ChatGPT)的問題,都算是Prompt的一種。
不過,在Prompt裡面也有一些特定的詞語,用簡短的文字就能在代表特定的意思,例如「#zh-tw」、「#en-us」就代表希望以繁體中文、英文回答。
在《The Way of Prompting》有提出一些常用的基本指令Prompt,分別為:
- 繼續
- 總結
- 萃取(摘要)
- 翻譯
- 重寫
大家看了有沒有覺得很眼熟XD
沒錯...我們安裝打著AI名號的 Chrome外掛
,基本上就是圍繞著這幾個功能去打轉的~所以如果我們學會寫自定義的Prompt模板,就可以打造更襯手的工具。
萬丈高樓平地起,我們一步步來。
.
.
.
首先,我們要學會怎麼提個「好問題」!
我精心設計了5種超擬真的情境(超有誠意的~),等一下摸著良心看看自己有沒有寫過類似以下的NG範例。誠實喔XD
【X】
ex1: 為什麼我的API報錯了?
ex2:(不發一語,直接貼一段錯誤訊息enter)
ex3: 請問API報錯,通常該怎麼處理?
【O】
我打一個GET的API時,遇到一個404錯誤。我檢查了URL的參數,都有帶到值。附上錯誤訊息,請幫我看一下為什麼會報錯?
.
【X】
什麼是Angular?
【O】
step 1
我想了解Angular,請問有些基本的知識點是我必須認識的? 請列點式說明。step 2
(針對回覆再個別詢問了解)step 3
(請ChatGPT將以上討論對話做成摘要,貼到筆記軟體)
.
【X】
什麼是Nx?
【O】
我預計在Angular16使用Nx工具,請用超級白話簡單的文字,向一個程式初學者介紹Nx
包含他的原理、應用的地方、使用它的好處與壞去、其他我應該知道的重要事情
.
【X】
SSR要怎麼建置?
【O】
我使用Angular作為前端框架,並使用Nust.js當做後端框架。現在想要導入SSR,請問有哪些方案?
.
【X】
我想學Typescript,可以幫我安排學習計畫嗎?
【O】
我寫JavaScript兩年了,現在想學TypeScript,希望可以將我目前專案的程式從JS轉成TS。我每個禮拜可以撥出兩個小時學習,請你幫我安排一份學習計畫。
.
好了,摸著良心說說看自己中過幾個吧~
.
.
.
《The Way of Prompting》的作者提到:「人聽得懂,AI才能懂。」這句話非常能體現在一堆「爛問題」上,我們拿問題一、問題四來看,如果今天直接原封不動地把NG版本發在社團裡,你應該會直接被砲XD
所謂的「背景資訊」,包含但不限於發生了什麼事、你在什麼情況碰到這個問題等等,多給一些details才能更確切的知道這個issue的脈絡是什麼。
.
.
我們可能曾經有這樣的經驗,工作信箱收到一封email,但看完之後還是不曉得對方到底想幹嘛?這就是沒有明確告知「目的、想解決的目標」的常見例子。
不同的目的也會有不一樣的答案。就拿問題五來說,在知道你的主要目標是想將一個JS的專案成TS後,ChatGPT幫你設計的計畫表也會更著重在比較JS、轉換等等議題上。
清楚告知你的目的,才能更快得到自己想要的東西,事半功倍。
.
.
假設我們要問的問題稍微複雜一點,分段式的提問會比一次把所有的資訊塞給對方來得好。向人請教問題的時候是如此,向ChatGPT溝通的時候也是一樣。
當問題比較複雜、龐大的時候,也代表有許多地方有些不確定性、需要進一步確認。分段式的提出問題,也能確保在每個可分岔的路口,雙方的認知是保持一致的。雖然多了幾個來回,但不需要一次就消化一個過於複雜的資訊,也能更輕鬆地得到更準確的答案。
.
.
.
其實就是多下指令、自己多檢討,慢慢就會進步了。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
好啦,我提供兩個辦法給你參考。
畢竟如果你都願意看到這 ╮(╯▽╰)╭
.
大家碰到的第一個問題可能是,要拿什麼東西來練習?
的確,如果沒有一個特定的情境,去完成一個特定的目標,會比較沒辦法立即投入練習。因此,經過六角的同意後,分享這份《ChatGPT AI 程式題詠唱訓練》給大家。
這是我今年在參加六角NodeJS特訓班的時候,在開課前要完成的暖身作業之一。大家可以試著練習看看這份練習菜單,愈後面愈有挑戰性歐。
.
.
在《原子習慣》、《刻意練習》等學習方法相關的熱門書籍,裡面都強調回饋的重要性。有了反饋我們才能確定自己沒走歪,我們才能知道怎麼樣去 優化
我們的技巧。在你日常使用ChatGPT處理完手邊的問題時,就可以直接問ChatGPT,這是最快可以得到「優化建議」的方法了!
我這裡就做個簡單的示範,假設我的目標是「找出一個特定營養素(比如維他命C、鐵等)在人體健康上的作用」,我向ChatGPT發問後,再接著詢問我剛剛的提問有沒有什麼能進步的地方。(完整對話請見此連結)
.
That's it!
接下來就是不斷的調整、改進囉。
.
.
.
.
相信會看到這裡的人,都是想要精進Prompt之道的夥伴們!如果你正在苦惱不知道該怎麼提好問題,希望這篇文章可以幫到你:)
其實只要有把自己目前的處境、想解決的目標、卡住的點寫進去,基本上就已經構成了一個好問題的必要條件。
明天我們將和大家聊一聊,其實「輸入的問題愈簡短」跟「ChatGPT輸出的品質」不一定成正比關係。
這話怎麼說呢?
欲知後事如何,且待下回分解~